package com.scfinance.SPD.util;

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date;

public class OSSUtil {

    public static final String OSS_PATH = "project.ossPath";

    private static Logger log = LoggerFactory.getLogger(OSSUtil.class);
    private static String endpoint = "http://oss-cn-shanghai.aliyuncs.com/";
    private static String accessKeyId = "LTAIR0wrXB0MCbME";
    private static String accessKeySecret = "lvsummnjfoJmtTr0dgjD6E9uieoEjz";
    private static String bucketName = "ecarfinance";
    private static OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
    public static final String OSSPATH = PropsUtil.getProperty(OSS_PATH);

    public static PutObjectResult uploadImage(InputStream inputStream, String imageName) {
        PutObjectResult result = null;
        try {
            if (null != inputStream) {  //如果网络文件存在
                result = ossClient.putObject(bucketName, OSSPATH + "/" + imageName, inputStream);
            }
        } catch (OSSException oe) {
            log.info("Caught an OSSException, which means your request made it to OSS,but was rejected with an error response for some reason.");
            log.info("Error Message: " + oe.getErrorCode());
            log.info("Error Code:       " + oe.getErrorCode());
            log.info("Request ID:      " + oe.getRequestId());
            log.info("Host ID:           " + oe.getHostId());
        } catch (ClientException ce) {
            log.info("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            log.info("Error Message: " + ce.getMessage());
        }
        return result;
    }

    public static PutObjectResult uploadImage(File file, String imageName) {
        PutObjectResult result = null;
        try {
            result = ossClient.putObject(new PutObjectRequest(bucketName, OSSPATH + "/" + imageName, file));
        } catch (OSSException oe) {
            log.info("Caught an OSSException, which means your request made it to OSS,but was rejected with an error response for some reason.");
            log.info("Error Message: " + oe.getErrorCode());
            log.info("Error Code:       " + oe.getErrorCode());
            log.info("Request ID:      " + oe.getRequestId());
            log.info("Host ID:           " + oe.getHostId());
        } catch (ClientException ce) {
            log.info("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            log.info("Error Message: " + ce.getMessage());
        }
        return result;
    }

    public static String getImageUrl(String imageName) {
        // 设置URL过期时间为1小时
        Date expiration = new Date(new Date().getTime() + 3600 * 1000);
        // 生成URL
        try {
//	    	if(ossClient.doesObjectExist(bucketName, OSSPATH+"/"+imageName)){  //如果图片存在
            URL url = ossClient.generatePresignedUrl(bucketName, OSSPATH + "/" + imageName, expiration);
            return url.toString();
//	    	}
        } catch (ClientException e) {
            System.out.println(e.getErrorCode());
        }
        return null;
    }

    public static boolean isFileExist(String imageName) {
        try {
//	    	if(ossClient.doesObjectExist(bucketName, OSSPATH+"/"+imageName)){  //如果图片存在
            return true;
//	    	}else{
//	    		return false;
//	    	}
        } catch (ClientException e) {
            System.out.println(e.getErrorCode());
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        return false;
    }

    /**
     * 从输入流中获取字节数组
     *
     * @param inputStream
     * @return
     * @throws IOException
     */
    public static byte[] readInputStream(InputStream inputStream) throws IOException {
        byte[] buffer = new byte[1024];
        int len = 0;
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        while ((len = inputStream.read(buffer)) != -1) {
            bos.write(buffer, 0, len);
        }
        bos.close();
        return bos.toByteArray();
    }

    /**
     * 从网络Url中下载文件
     *
     * @param urlStr
     * @param fileName
     * @param savePath
     * @throws IOException
     */
    public static void downLoadFromUrl(String urlStr, String fileName, String savePath) throws IOException {
        URL url = new URL(urlStr);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        //设置超时间为3秒
        conn.setConnectTimeout(3 * 1000);
        //防止屏蔽程序抓取而返回403错误  
        conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
        //得到输入流  
        InputStream inputStream = conn.getInputStream();
        //获取自己数组  
        byte[] getData = readInputStream(inputStream);
        //文件保存位置  
        File saveDir = new File(savePath);
        if (!saveDir.exists()) {
            saveDir.mkdir();
        }
        File file = new File(saveDir + File.separator + fileName);
        FileOutputStream fos = new FileOutputStream(file);
        fos.write(getData);
        if (fos != null) {
            fos.close();
        }
        if (inputStream != null) {
            inputStream.close();
        }
    }

    public static void main(String[] args) throws IOException {
//    	uploadImage(new FileInputStream("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".getBytes()),"1.png");
//    	uploadImage(new FileInputStream(new File("C:\\Users\\Administrator\\Desktop\\QQ图片20170308113238.png")),"2.png");
//    	uploadImage(new FileInputStream(new File("C:\\Users\\Administrator\\Desktop\\QQ图片20170308113238.png")),"3.png");
//    	shutdownClient();
//    	return;
//    	downLoadFromUrl(lineTxt, imageName,"F:/project/SCFinanceProject/mongoImage");
        String encoding = "GBK";
        File file = new File("C:\\Users\\Administrator\\Desktop\\mongo.txt");
        if (file.isFile() && file.exists()) { //判断文件是否存在
            InputStreamReader read = new InputStreamReader(
                    new FileInputStream(file), encoding);//考虑到编码格式
            BufferedReader bufferedReader = new BufferedReader(read);
            String lineTxt = null;
            while ((lineTxt = bufferedReader.readLine()) != null) {
                lineTxt = lineTxt.trim();
                String imageName = lineTxt.substring(33, lineTxt.length());
                if (!imageName.contains("SA")) {
                    System.out.println("1");
//            		uploadImage(lineTxt, imageName);
                    downLoadFromUrl(lineTxt, imageName, "F:/project/SCFinanceProject/mongoImage");
                }
            }
            read.close();
        }

    }

}
